package com.cr.business.service;

import com.cr.business.domain.TbUserEntityInfo;
import com.cr.business.domain.dto.EntityReqDto;
import com.cr.business.domain.vo.AppAuthData;
import com.cr.business.domain.vo.EntityExportData;
import com.cr.business.domain.vo.EntityListData;

import java.util.List;
import java.util.Map;

/**
 * 用户主体信息Service接口
 * 
 * @author tang
 * @date 2025-08-19
 */
public interface ITbUserEntityInfoService 
{
    /**
     * 查询用户主体信息
     */
    AppAuthData selectTbUserEntityInfo();

    /**
     * 新增用户主体信息
     * 
     * @param tbUserEntityInfo 用户主体信息
     * @return 结果
     */
    int insertTbUserEntityInfo(TbUserEntityInfo tbUserEntityInfo);

    /**
     * 修改用户主体信息
     * 
     * @param tbUserEntityInfo 用户主体信息
     * @return 结果
     */
    int updateTbUserEntityInfo(TbUserEntityInfo tbUserEntityInfo);

    /**
     * 获取主体列表数据
     * @param params 查询参数
     */
    List<EntityListData> selectEntityList(EntityReqDto params);

    /**
     * 删除主体信息
     * @param entityIds 主体ID
     */
    int deleteEntityInfoByIds(String[] entityIds);

    /**
     * 查询导出的数据
     * @param params 查询参数
     * @return
     */
    List<EntityExportData> selectEntityExportList(EntityReqDto params);

    /**
     * 修改主体状态
     * @param entityId 主体ID
     * @param status 状态（1-停产，2-注销）
     */
    int updateEntityInfoStatus(String entityId, String status);

    /**
     * 审核主体信息
     * @param entityId 主体ID
     * @param result 审核结果
     * @param reasons 备注/审核失败原因
     */
    int authEntityInfo(String entityId, String result, String reasons);

    /**
     * APP端获取主体信息
     */
    Map<String, Object> appGetEntityInfo();
    Map<String, Object> appGetEntityInfo(String entityId);
}
